home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib06.dsk / LAZER BLASTER.bas < prev    next >
BASIC Source File  |  2023-02-26  |  6KB  |  89 lines

  1. 10  REM ======================
  2. 15  REM =  LAZER - BLASTER   =
  3. 20  REM =  BY: RUDY A. GUY   =
  4. 25  REM =    JUNE 7, 1981    =
  5. 30  REM =                    =
  6. 35  REM = (C) COPYRIGHT 1981 =
  7. 40  REM =  MICRO-SPARC INC.  =
  8. 45  REM ======================
  9. 50  GOSUB 445
  10. 55  GOSUB 370
  11. 60  TEXT : HOME : IF  PEEK(233) < >32  THEN  PRINT  CHR$(4)"BLOAD LB.O"
  12. 65  POKE 232,0: POKE 233,32: VTAB 12
  13. 70  INPUT "SELECT SKILL LEVEL (1-3) ";L: IF L <1  OR L >3  THEN 60
  14. 75 IL = L
  15. 80  REM  <<< INITIALIZE HI-RES SCREEN >>>
  16. 85  HGR2 : ROT= 0: SCALE= 1: HCOLOR= 3: DRAW 1 AT 140,96
  17. 90  DRAW 6 AT 5,5: DRAW 7 AT 33,5: DRAW 8 AT 12,15: DRAW 9 AT 40,15: DRAW 10 AT 17,32: DRAW 11 AT 45,32
  18. 95  FOR I = 1 TO 100: HCOLOR=  RND(1) *7 +1: HPLOT  RND(1) *280, RND(1) *192: NEXT : REM  STARS
  19. 100  REM  INITIALIZE ALIEN SHIPS
  20. 105  FOR I = 1 TO 4: READ XI(I),YI(I),RO(I):X =  INT( RND(1) *10 +1)
  21. 110  IF X/2 < > INT(X/2)  THEN 130
  22. 115  IF X/2 =  INT(X/2)  THEN SH(I) = 2
  23. 120 X =  INT( RND(1) *10 +1): IF X = 7  THEN SH(I) = 3
  24. 125  IF X = 10  THEN SH(I) = 4
  25. 130  NEXT : HCOLOR= 3
  26. 135  FOR I = 1 TO 4: IF SH(I) >0  THEN  ROT= RO(I): DRAW SH(I) AT XI(I),YI(I)
  27. 140  NEXT 
  28. 145  REM  <<< READ PADDLE & ASSIGN LAZER POSITION >>>
  29. 150  IF L >5  THEN L = 5
  30. 155 P =  PDL(0):LGUN =  INT((P +45)/75): IF LGUN <1  THEN LGUN = 1: GOTO 160
  31. 160  IF Y >0  THEN  HCOLOR= 0: ROT= R: DRAW 5 AT X,Y: HCOLOR= 3
  32. 165  ON LGUN GOSUB 195,200,205,210
  33. 170  REM  <<< CHECK FOR BUTTON (0) >>>
  34. 175  IF  PEEK( -16287) >127  THEN :KB = 0: GOSUB 215
  35. 180  FOR I = 1 TO 4: IF SH(I) >1  THEN  ROT= RO(I): HCOLOR= 0: DRAW SH(I) AT XI(I),YI(I): HCOLOR= 3: ON I GOSUB 280,290,300,310
  36. 185  NEXT : FOR I = 1 TO 4:SH = SH +SH(I): NEXT : IF SH = 0  THEN  RESTORE :L = L +.15: HCOLOR= 0: ROT= R: DRAW 5 AT X,Y: HCOLOR= 3: GOTO 105
  37. 190 SH = 0: GOTO 150
  38. 195  ROT= 48: DRAW 5 AT 140,87:X = 140:Y = 87:R = 48: RETURN 
  39. 200  ROT= 0: DRAW 5 AT 149,95:X = 149:Y = 95:R = 0: RETURN 
  40. 205  ROT= 16: DRAW 5 AT 140,105:X = 140:Y = 105:R = 16: RETURN 
  41. 210  ROT= 32: DRAW 5 AT 131,96:X = 131:Y = 96:R = 32: RETURN 
  42. 215  REM  <<< FIRE LAZER >>>
  43. 220  ON LGUN GOSUB 230,240,250,260
  44. 225  RETURN 
  45. 230  IF SH(LGUN) <2  THEN  HPLOT 140,82 TO XI(LGUN),YI(LGUN): GOSUB 325: HCOLOR= 0: HPLOT 140,82 TO XI(LGUN),YI(LGUN): HCOLOR= 3: RETURN 
  46. 235 HX = 140:HY = 82: GOSUB 270: RETURN 
  47. 240  IF SH(LGUN) <2  THEN  HPLOT 153,95 TO XI(LGUN),YI(LGUN): GOSUB 325: HCOLOR= 0: HPLOT 153,95 TO XI(LGUN),YI(LGUN): HCOLOR= 3: RETURN 
  48. 245 HX = 153:HY = 95: GOSUB 270: RETURN 
  49. 250  IF SH(LGUN) <2  THEN  HPLOT 140,109 TO XI(LGUN),YI(LGUN): GOSUB 325: HCOLOR= 0: HPLOT 140,109 TO XI(LGUN),YI(LGUN): HCOLOR= 3: RETURN 
  50. 255 HX = 140:HY = 109: GOSUB 270: RETURN 
  51. 260  IF SH(LGUN) <2  THEN  HPLOT 127,96 TO XI(LGUN),YI(LGUN): GOSUB 325: HCOLOR= 0: HPLOT 127,96 TO XI(LGUN),YI(LGUN): HCOLOR= 3: RETURN 
  52. 265 HX = 127:HY = 96: GOSUB 270: RETURN 
  53. 270  HPLOT HX,HY TO XI(LGUN),YI(LGUN): ROT= RO(LGUN): HCOLOR= 0: DRAW SH(LGUN) AT XI(LGUN),YI(LGUN): SCALE= 2: HCOLOR= 3: DRAW SH(LGUN) AT XI(LGUN),YI(LGUN)
  54. 275  GOSUB 325: HCOLOR= 0: HPLOT HX,HY TO XI(LGUN),YI(LGUN): DRAW SH(LGUN) AT XI(LGUN),YI(LGUN):SC = SC +(SH(LGUN) *IL *5):SH(LGUN) = 0: SCALE= 1: RETURN 
  55. 280 YI(I) = YI(I) +(5 *L): DRAW SH(I) AT XI(I),YI(I): IF YI(I) =  >87  THEN  POP : GOTO 340
  56. 285  RETURN 
  57. 290 XI(I) = XI(I) -(7 *L): DRAW SH(I) AT XI(I),YI(I): IF XI(I) < = 149  THEN  POP : GOTO 340
  58. 295  RETURN 
  59. 300 YI(I) = YI(I) -(5 *L): DRAW SH(I) AT XI(I),YI(I): IF YI(I) < = 105  THEN  POP : GOTO 340
  60. 305  RETURN 
  61. 310 XI(I) = XI(I) +(7 *L): DRAW SH(I) AT XI(I),YI(I): IF XI(I) > = 131  THEN  POP : GOTO 340
  62. 315  RETURN 
  63. 320  REM  LAZER SOUND
  64. 325  FOR I = 12 TO 10  STEP  -1: POKE 776,7: POKE 777,I: CALL 778: NEXT : RETURN 
  65. 330  REM  SOUND FOR DESTRUCTION OF LAZER TURRET
  66. 335  POKE  -16336, PEEK( -16336): POKE  -16336, PEEK( -16336): POKE  -16336, PEEK( -16336): RETURN 
  67. 340  FOR I = 1 TO 10: SCALE= I: DRAW 1 AT 140,96: GOSUB 335: NEXT 
  68. 345  TEXT : HOME : IF SC >HS  THEN  VTAB 7: PRINT "NEW HIGH SCORE : ";: FLASH : PRINT SC: NORMAL :HS = SC: GOTO 355
  69. 350  VTAB 7: PRINT "HIGH SCORE :"HS: VTAB 9: PRINT "YOUR SCORE :"SC
  70. 355  VTAB 20: PRINT "ANOTHER TRY ?";: GET A$: IF A$ = "N"  THEN  END 
  71. 360 SC = 0:R = 0:X = 0:Y = 0:IL = 0: RESTORE : GOTO 60
  72. 365  DATA  140,12,32,260,96,48,140,178,0,16,96,16
  73. 370  REM  TITLE
  74. 375  TEXT : HOME 
  75. 380  VTAB 10:A$ = "L A Z E R - B L A S T E R": FLASH : GOSUB 435: NORMAL 
  76. 385  VTAB 12:A$ = "BY: RUDY A. GUY  JUNE 7, 1981": GOSUB 435
  77. 390  VTAB 12:A$ = "(C) COPYRIGHT 1981 - MICRO-SPARC INC.": GOSUB 435
  78. 395  VTAB 23: PRINT "INSTRUCTIONS (Y/N)?";: GET A$: PRINT : IF A$ = "N"  THEN  RETURN 
  79. 400  HOME :A$ = "L A Z E R - B L A S T E R": INVERSE : GOSUB 435: NORMAL : PRINT 
  80. 405  PRINT "   THE OBJECT OF 'LAZER-BLASTER' IS TO  SHOOT AS MANY ALIENS AND ASTEROIDS AS   POSSIBLE.  GAME PADDLE (0) IS USED TO   TURN AND FIRE THE LAZER."
  81. 410  PRINT : PRINT "   THERE ARE 3 LEVELS OF PLAY FROM WHICHTO CHOOSE.  (LEVEL 1 IS THE EASIEST.)   AS YOUR SCORE INCREASES, SO WILL THE    SPEED OF THE ALIEN SHIPS.  SCORING IS ASFOLLOWS:"
  82. 415  PRINT : PRINT "ATTACKER          LEV.1  LEV.2  LEV.3   ----------------------------------------LARGE SHIP          10     20     30"
  83. 420  PRINT "SMALL SHIP          15     30     45    ASTEROID            20     40     60"
  84. 425  VTAB 23: PRINT "PRESS ANY KEY TO BEGIN.":X =  PEEK( -16384): IF X >127  THEN  POKE  -16368,0: RETURN 
  85. 430  GOTO 425
  86. 435  HTAB 20 - LEN(A$)/2: PRINT A$: RETURN 
  87. 440  REM  <<< SOUND ROUTINE (FP) >>>
  88. 445  POKE 776,255: POKE 777,255: POKE 778,173: POKE 779,48: POKE 780,192: POKE 781,136: POKE 782,208: POKE 783,5: POKE 784,206: POKE 785,9: POKE 786,3: POKE 787,240: POKE 788,9
  89. 450  POKE 789,202: POKE 790,208: POKE 791,245: POKE 792,174: POKE 793,8: POKE 794,3: POKE 795,76: POKE 796,10: POKE 797,3: POKE 798,96: RETURN